20 RANDOMIZEVAL(RIGHT$(TIME$,2)):KEYOFF:CLS:Z$=STRING$(25," "):G2$(1)="WARP ENGINES":G2$(2)="SHORT RANGE SENSORS":G2$(3)="LONG RANGE SENSORS":G2$(4)="PHASER CONTROL":G2$(5)="PHOTON TUBES":G2$(6)="DAMAGE CONTROL":G2$(7)="SHIELD CONTROL
40 G4$(13)="ALDEBARAN":G4$(14)="REGULUS":G4$(15)="ARCTURUS":G4$(16)="SPICA":T=INT(RND(1)*20+20)*100:T0=T:T9=25+INT(RND(1)*10):D0=0:E=3000:E0=E:P=10:P0=P:S9=200:S=0:B9=0:K9=0:X$="":X0$=" IS ":DEFFND(D)=SQR((K(I,1)-S1)^2+(K(I,2)-S2)^2)
130 PRINT"YOUR ORDERS ARE AS FOLLOWS:":PRINT"DESTROY THE";K9;"KLINGON WARSHIPS WHICH HAVE INVADED":PRINT"THE GALAXY BEFORE THEY CAN ATTACK FEDERATION HEADQUARTERS":PRINT"ON STARDATE";T0+T9;". THIS GIVES YOU";T9;"DAYS. THERE ";X0$
140 PRINTB9;"STARBASE";X$;" IN THE GALAXY FOR RESUPPLYING YOUR SHIP.":PRINT:PRINT"HIT ANY KEY TO BEGIN YOUR COMMAND
360 PRINT"TYPE ONE OF THE FOLLOWING:":PRINT"NAV - TO SET COURSE":PRINT"SRS - FOR SHORT RANGE SENSOR SCAN":PRINT"LRS - FOR LONG RANGE SENSOR SCAN":PRINT"PHA - TO FIRE LASERS":PRINT"TOR - TO FIRE PHOTON TORPEDOES":PRINT"SHE - TO RAISE OR LOWER SHEILDS
370 PRINT"DAM - FOR DAMAGE CONTROL REPORTS":PRINT"COM - TO CALL ON LIBRARY COMPUTER":PRINT"XXX - TO RESIGN YOUR COMMAND":PRINT:GOTO300
760 PRINT"GALAXY BORDER REACHED.":PRINT"ENGINE SHUTDOWN AT SECTOR";S1;",";S2;"OF QUADRANT";Q1;",";Q2;".":IFT>T0+T9THEN1460
770 IF8*Q1+Q2=8*Q4+Q5THEN660
780 T=T+1:GOSUB790:GOTO160
790 E=E-N-10:IFE>=0THENRETURN
800 PRINT"SHIELD CONTROL SUPPLIES ENERGY TO COMPLETE THE MANEUVER.":S=S+E:E=0:IFS<=0THENS=0
810 RETURN
820 IFD(3)<0THENPRINT"LONG RANGE SENSORS ARE INOPERABLE.":GOTO300
830 PRINT"LONG RANGE SENSOR SCAN FOR QUADRANT";Q1;",";Q2:O1$="----------------------":PRINTO1$:FORI=Q1-1TOQ1+1:N(1)=-1:N(2)=-1:N(3)=-1:FORJ=Q2-1TOQ2+1:IFI>0ANDI<9ANDJ>0ANDJ<9THENN(J-Q2+2)=G(I,J):Z(I,J)=G(I,J)
1230 IFD(7)<0THENPRINT"SHIELD CONTROL INOPERABLE":GOTO300
1240 PRINTE+S;"UNITS OF ENERGY AVAILABLE":INPUT"NUMBER OF UNITS TO SHIELDS";X:IFX<0ORX=STHENPRINT"SHIELDS UNCHANGED":GOTO300
1250 IFX<=E+STHEN1270
1260 PRINT"NOT ENOUGH UNITS OF ENERGY AVAILABLE":GOTO300
1270 E=E+S-X:S=X:PRINT"SHIELDS NOW AT";INT(S);"UNITS":GOTO300
1280 IFD(6)>=0THEN1360
1290 PRINT"DAMAGE CONTROL REPORT NOT AVAILABLE":IFD0=0THEN300
1300 D3=0:FORI=1TO8:IFD(I)<0THEND3=D3+0.1
1310 NEXTI:IFD3=0THEN300
1320 PRINT:D3=D3+D4:IFD3>=1THEND3=0.9
1330 PRINT"STANDBY TO EFFECT REPAIRS ON YOUR SHIP":PRINT"ESTIMATED TIME TO REPAIR:";0.01*INT(100*D3);"STARDATES":INPUT"WILL YOU AUTHORIZE THE REPAIR (Y/N)";A$:IFA$<>"Y"THEN300
1340 FORI=1TO8:IFD(I)<0THEND(I)=0
1350 NEXTI:T=T+D3+0.1
1360 PRINT:PRINT"DEVICE STATE OF REPAIR":FORR1=1TO8:PRINTG2$(R1);LEFT$(Z$,25-LEN(G2$(R1)));INT(D(R1)*100)*0.01:NEXTR1:PRINT:IFD0<>0THEN1300
1370 GOTO300
1380 IFK3<=0THENRETURN
1390 IFD0<>0THENPRINT"STARBASE SHIELDS PROTECT THE ENTERPRISE":RETURN
1400 FORI=1TO3:IFK(I,3)<=0THEN1450
1410 H=INT((K(I,3)/FND(1))*(2+RND(1))):S=S-H:K(I,3)=K(I,3)/(3+RND(0)):PRINTH;"UNITS HIT ON ENTERPRISE FROM SECTOR";K(I,1);",";K(I,2):IFS<=0THEN1470
1420 PRINT"SHIELDS DOWN TO";S;"UNITS":IFH<20THEN1450
1430 IFRND(1)>0.6ORH/S<=0.02THEN1450
1440 R1=FNR(1):D(R1)=D(R1)-H/S-0.5*RND(1):PRINT"DAMAGE CONTROL REPORTS `";G2$(R1);"' DAMAGED BY THE HIT
1450 NEXTI:RETURN
1460 PRINT"IT STARDATE";T:GOTO1480
1470 PRINT:PRINT"THE ENTERPRISE HAS BEEN DESTROYED.":PRINT"THE FEDERATION WILL BE CONQUERED":GOTO1460
1480 PRINT"THERE WERE";K9;"KLINGON BATTLE CRUISERS":PRINT"LEFT AT THE END OF YOUR MISSION.
1490 INPUT"AGAIN (Y/N)";A$:IFA$="Y"THEN20
1500 END
1510 PRINT"CONGRATULATIONS. THE LAST KLINGON BATTLE CRIUSER HAS BEEN DESTROYED":PRINT"YOUR EFFICIENCY RATING IS";1000*(K7/(T-T0))^2:GOTO1490
1840 PRINT"KLINGON";X$;" LEFT:";K9:PRINT"MISSION MUST BE COMPLETED IN";0.1*INT((T0+T9-T)*10);"STARDATES":X$="S":IFB9<2THENX$="":IFB9<1THEN1860
1850 PRINT"THE FEDERATION IS MAINTAINING";B9;"STARBASE";X$;" IN THE GALAXY":GOTO1280
1860 PRINT"THERE ARE NO STARBASES LEFT":GOTO1280
1870 IFK3<=0THEN890
1880 X$="":IFK3>1THENX$="S
1890 PRINT"FROM ENTERPRISE TO KLINGON BATTLE CRUISER";X$:H8=0:FORI=1TO3:IFK(I,3)<=0THEN2080
1900 W1=K(I,1):X=K(I,2)
1910 C1=S1:A=S2:GOTO1930
1920 PRINT"DIRECTION/DISTANCE CALCULATOR:":PRINT"YOU ARE AT QUADRANT";Q1;",";Q2;"SECTOR";S1;",";S2:INPUT"PLEASE ENTER INITIAL COORDINATES (X,Y)";C1,A:INPUT"FINAL COORDINATES (X,Y)";W1,X